package com.gimi.cloud.bbp.dao.dao.page;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.gimi.cloud.bbp.dao.myMapper.MyMapper;
import com.gimi.cloud.bbp.dto.page.PageModelDTO;
import com.gimi.cloud.bbp.entity.page.PageModel;

@Mapper
public interface PageModelDao extends MyMapper<PageModel>{
	
	@Select("select * from pc_page_model where is_delete = '0' and column_id= #{columnId}")
	@Results({
		@Result(property = "photoId", column = "photo_id"),
		@Result(property = "pageModelPhoto", column = "photo_id" ,one = @One(select = ("com.gimi.cloud.bbp.dao.dao.page.PageModelPhotoDao.getPageModelPhotoById"))),
	})
	List<PageModelDTO> getPageModelByColumnId(Integer columnId);
	
	@Select("select * from pc_page_model where is_delete = '0' and id= #{id}")
	@Results({
		@Result(property = "pageModelPhoto", column = "photo_id" ,one = @One(select = ("com.gimi.cloud.bbp.dao.dao.page.PageModelPhotoDao.getPageModelPhotoById"))),
	})
	PageModelDTO getPageModelById(Integer id);

	@Update("update pc_page_model set is_delete = '1' where id in (${ids})")
	Long delById(@Param("ids") String ids);

	@Select("select id from pc_page_model where is_delete = '0' and column_id in (${columnIds})")
	List<Integer> getListByColumnIds(@Param("columnIds") String columnIds);


}
